/* eslint-disable */
import ServiceLogicError from './ServiceLogicError';
import EnsureError from './EnsureError';
import ToastError from './ToastError';
import RequestError from './RequestError';
import APIError from './APIError';

export function isTimeoutError(error) {
    return error && error.status === 408;
}

export function isServiceLogicError(error) {
    return error instanceof ServiceLogicError;
}

export function isEnsureError(error) {
    return error instanceof EnsureError;
}

export function isToastError(error) {
    return error instanceof ToastError;
}

export function isAPIError(error) {
    return error instanceof APIError;
}

export function isRequestError(error) {
    return error instanceof RequestError;
}

// function ErrorHandler(error) {
//     let { message } = error;

//     // 开启神策异常上报
//     errorTrack(error);

//     if (isServiceLogicError(error)) {
//         console.info(error);
//         return;
//     }
//     if (isEnsureError(error)) {
//         Modal.alert(MESSAGE.REMINDER, message, [{ text: MESSAGE.GOTIT, onPress: goBack }]);
//         return;
//     }
//     if (isToastError(error)) {
//         Toast.offline(message);
//         return;
//     }
//     if (isAPIError(error)) {
//         Modal.alert(MESSAGE.REMINDER, message, [{ text: MESSAGE.GOTIT }]);
//         return;
//     }
//     if (isRequestError(error)) {
//         console.info(error);
//         return;
//     }
//     message += ` https://stackoverflow.com/questions?q=${encodeURI(message)}`;
//     console.error(error);
// }

// 异常处理
// if (canUseWindow) {
//     window.onerror = (message, url, line, col, error) => ErrorHandler(error);
//     window.onrejectionhandled = event => ErrorHandler(event.reason);
//     window.onunhandledrejection = event => ErrorHandler(event.reason);
// }

export { ServiceLogicError, EnsureError, ToastError, APIError, RequestError };
// export default ErrorHandler;
